import axios from "axios";
import {
	vm
} from "@/main";
axios.defaults.timeout = 300000; //请求超时时间30秒
// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
axios.defaults.headers.common["Content-Type"] = "application/x-www-form-urlencoded";
axios.interceptors.request.use(
	config => {
		// let repeat = false,
		//   requestObjKey = `${config.baseURL}${config.url}Method:${config.method}`,
		//   requestMap = vm.$store.state.app.requestMap
		// if (config.method != 'get') {
		//   if (requestMap.has(requestObjKey)) {
		//     repeat = true
		//     return Promise.reject(false);
		//   }
		// }
		// if (!repeat) {
		// var auth = sessionStorage.getItem("auth");
		// config.headers.Authorization = `Bearer ${auth}`;
		// requestMap.set(requestObjKey, 1)
		return config;
		// }

	},
	error => {
		return Promise.reject(error);
	}
);

axios.interceptors.response.use(
	response => {
		// var requestMap = vm.$store.state.app.requestMap
		const {
			data: {
				code,
				message,
				result,
				msg
			},
			config
		} = response
		// let requestObjKey = `${config.url}Method:${config.method}`
		// setTimeout(() => {
		//   requestMap.delete(requestObjKey)
		// }, 5000)
		if (code == 'ok') {
			return response.data //golang
			//    return response.data//c#
		} else {
			vm.$Message.warning(message || msg)
			return Promise.reject();
		}
	},
	error => {
		if (error) {
			// var requestMap = vm.$store.state.app.requestMap
			// var {
			//   response: {
			//     data,
			//     statusText,
			//     status,
			//     config
			//   }
			// } = error;
			// var {
			//   code,
			//   message,
			//   msg
			// } = data;
			// let requestObjKey = `${config.url}Method:${config.method}`
			// requestMap.delete(requestObjKey)
			// if (status === 401 && statusText === "Unauthorized") {
			//   vm.$Message.destroy()
			//   vm.$Message.error(`登录状态过期，请重新登录`);
			//   vm.$router.replace({
			//     name: 'login'
			//   })
			//   // return false
			// } else {
			//   vm.$Message.error(message || msg);
			// }
			return
			return Promise.reject(error);
		}


	}
);
